/*******************************************************************************
 * Copyright (c) 2011 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package com.takaharabooks.mhp3rd;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.Cursor;
import android.database.SQLException;
import android.util.Log;

public class DB_ArmorList extends DB_Base
{
	//**********************定数定義**********************
	//***** 数値
	// Version
	// 2011/04/05	ver.1
	// 2011/04/10	ver.2
	// 2011/05/08	ver.3
	public static final int DB_VER = 3;
	//***** 文字列
	// DB名
	public static final String	DB_NAME = "Armor.db";
	// テーブル名
	public static final String	DB_ARMOR_TBL_NAME = "tb_armor";
	public static final String	DB_LEVEL_TBL_NAME = "tb_level_info";
	// 列名
	public static final String	DB_COL_ARMOR_ID = "armor_id";
	public static final String	DB_COL_ARMOR_KIND = "armor_kind";
	public static final String	DB_COL_ARMOR_PART = "armor_part";
	public static final String	DB_COL_ARMOR_RARE = "armor_rare";
	public static final String	DB_COL_ARMOR_LV_ID = "armor_lv_id";
	public static final String	DB_COL_ARMOR_NAME = "armor_name";
	public static final String	DB_COL_ARMOR_SLOT = "armor_slot";
	public static final String	DB_COL_ARMOR_POWER = "armor_power";
	public static final String	DB_COL_ARMOR_RESIST_FIRE = "armor_resist_fire";
	public static final String	DB_COL_ARMOR_RESIST_WATER = "armor_resist_warter";
	public static final String	DB_COL_ARMOR_RESIST_THUNDER = "armor_resist_thunder";
	public static final String	DB_COL_ARMOR_RESIST_ICE = "armor_resist_ice";
	public static final String	DB_COL_ARMOR_RESIST_DRAGON = "armor_resist_dragon";
	public static final String	DB_COL_ARMOR_SKILL_1 = "armor_skill_1";
	public static final String	DB_COL_ARMOR_SKILL_2 = "armor_skill_2";
	public static final String	DB_COL_ARMOR_SKILL_3 = "armor_skill_3";
	public static final String	DB_COL_ARMOR_SKILL_4 = "armor_skill_4";
	public static final String	DB_COL_ARMOR_SKILL_5 = "armor_skill_5";
	public static final String	DB_COL_ARMOR_MATERIAL_0 = "armor_material_0";
	public static final String	DB_COL_ARMOR_MATERIAL_1 = "armor_material_1";
	public static final String	DB_COL_ARMOR_MATERIAL_2 = "armor_material_2";
	public static final String	DB_COL_ARMOR_MATERIAL_3 = "armor_material_3";
	public static final String	DB_COL_ARMOR_MATERIAL_4 = "armor_material_4";
	public static final String	DB_COL_ARMOR_PRICE = "armor_price";
	public static final String	DB_COL_LEVEL_ID = "level_id";
	public static final String	DB_COL_LEVEL_LV_ID = "level_lv_id";
	public static final String	DB_COL_LEVEL_LEVEL = "level_level";
	public static final String	DB_COL_LEVEL_POWER = "level_power";
	public static final String	DB_COL_LEVEL_GROW_MATERIAL = "level_grow_material";
	public static final String	DB_COL_LEVEL_PRICE = "level_price";
	// カテゴリ
	public static final int		ARMOR_KIND_COMMON = 1;
	public static final int		ARMOR_KIND_FENCER = 2;
	public static final int		ARMOR_KIND_GUNNER = 3;
	public static final String[] ARMOR_KINDS = {
		"共用",	"剣士",	"ガンナー", "全種類"
	};
	public static final String[] ARMOR_PARTS = {
		"頭",	"胴",	"腕",	"腰",	"脚"
	};
	public static final String[] ARMOR_RARES_COMMON = {
		"ﾚｱ1",	"ﾚｱ3",	"ﾚｱ5",	"ﾚｱ7",	"全"
	};
	public static final String[] ARMOR_RARES = {
		"ﾚｱ1",	"ﾚｱ2",	"ﾚｱ3",	"ﾚｱ4",	"ﾚｱ5",	"ﾚｱ6",	"ﾚｱ7",	"全"
	};
	//**********************定数定義**********************

    // 設定情報
    //public Preferences_Setting m_csSetting;
	
	public boolean m_bUpdateFlag = false; 
	    
    // 防具情報変数
    public int m_nArmorNum = 0;
    public int m_nArmorID[];
    public int m_nArmorKind[];
    public int m_nArmorPart[];
    public int m_nArmorRare[];
    public int m_nArmorSlot[];
    public int m_nArmorPower[];
    public int m_nArmorResist[][];
    public String m_strArmorName[];
    public String m_strArmorSkill[][];
    public String m_strArmorMaterial[][];
    public int m_nArmorPrice[];
    public int m_nArmorLvID[];
    
    // レベル情報変数
    public int m_nLevelNum;
    public int m_nLevel[];
    public int m_nLevelPower[];    
    public int m_nLevelGrowMaterial[];    
    public int m_nLevelPrice[];
        
	// コンストラクタ
	public DB_ArmorList(Context context) {
		super(context, DB_NAME, DB_VER);
	    // DBアクセスクラス生成
		//m_csDBSql = new DB_BaseOperater(context, DB_NAME_MISSION, DB_VER_MISSION);
        // セッティング情報を準備
        //m_csSetting = new Preferences_Setting(context);
	
	}
	
	// ＤＢからデータ取得して内部でセット
	public boolean StartDB()
	{
		SetDB(ARMOR_KIND_COMMON, 1, "", -1);
		//SetDB(ARMOR_KIND_COMMON, 1, 1, "");
        
        return true;
	}
	
	/*****************************************
	 *  絞込みのデータを取得
	 ****************************************/
    public boolean SetDB(int nKind, int nRare, String strSkill, int nPart)
    {
		Cursor csCur;
		// ＤＢからデータの取得
		try{
			String strWhere = " where 1 = 1 ";
			if(0 < nKind){
				strWhere += String.format(" and %s = %d ", DB_COL_ARMOR_KIND,	nKind);
			}
			if(0 < nRare){
				strWhere += String.format(" and %s = %d ", DB_COL_ARMOR_RARE,	nRare);
			}
			if(0 < nPart){
				strWhere += String.format(" and %s = %d ", DB_COL_ARMOR_PART,	nPart);
			}
			if(0 < strSkill.length()){
				strWhere += String.format(" and (%s like \'%s%%\' or %s like \'%s%%\' or %s like \'%s%%\' or %s like \'%s%%\' or %s like \'%s%%\') ", 
						DB_COL_ARMOR_SKILL_1,	strSkill,
						DB_COL_ARMOR_SKILL_2,	strSkill,
						DB_COL_ARMOR_SKILL_3,	strSkill,
						DB_COL_ARMOR_SKILL_4,	strSkill,
						DB_COL_ARMOR_SKILL_5,	strSkill
				);
			}
			String strQuery = String.format( "select * from %s %s",
											 DB_ARMOR_TBL_NAME,
											 strWhere );
			Log.v("DB_Armor", strQuery);
	    	csCur = readDB(strQuery);			
		}catch(Exception e){
			// 例外時は何もしない
			return false;
		}
		
		m_nArmorNum = csCur.getCount();
		m_nArmorID = new int[m_nArmorNum];
		m_nArmorKind = new int[m_nArmorNum];
		m_nArmorPart = new int[m_nArmorNum];
		m_nArmorRare = new int[m_nArmorNum];
		m_nArmorSlot = new int[m_nArmorNum];
		m_nArmorLvID = new int[m_nArmorNum];
		m_strArmorName = new String[m_nArmorNum];
		m_nArmorPower = new int[m_nArmorNum];
		m_nArmorResist = new int[m_nArmorNum][5];
		m_strArmorSkill = new String[m_nArmorNum][5];
		m_strArmorMaterial = new String[m_nArmorNum][5];
		m_nArmorPrice = new int[m_nArmorNum];
    	
    	// ガーベジコレクション
    	java.lang.System.gc();

    	// カーソルを使ってメンバ変数にデータをセット
        csCur.moveToFirst();
        for(int nIndex=0; nIndex<m_nArmorNum; nIndex++){
        	m_nArmorID[nIndex] = csCur.getInt(0);
        	m_nArmorKind[nIndex] = csCur.getInt(1);
        	m_nArmorPart[nIndex] = csCur.getInt(2);
        	m_nArmorRare[nIndex] = csCur.getInt(3);
        	m_nArmorSlot[nIndex] = csCur.getInt(4);
        	m_nArmorLvID[nIndex] = csCur.getInt(5);
        	m_strArmorName[nIndex] = csCur.getString(6);
        	m_nArmorPower[nIndex] = csCur.getInt(7);
        	for(int nIdx=0; nIdx<5; nIdx++){
        		m_nArmorResist[nIndex][nIdx] = csCur.getInt(8+nIdx);
            	m_strArmorSkill[nIndex][nIdx] = csCur.getString(13+nIdx);
            	m_strArmorMaterial[nIndex][nIdx] = csCur.getString(18+nIdx);
        	}
        	m_nArmorPrice[nIndex] = csCur.getInt(23);
        	csCur.moveToNext();
        }
        csCur.close();
        
        return true;
    }

	/*****************************************
	 *  絞込みのデータを取得
	 ****************************************/
    public boolean SetLevelDB(int nLevelID)
    {
		Cursor csCur;
		// ＤＢからデータの取得
		try{
			String strWhere = String.format( "where %s = %d",
					 DB_COL_LEVEL_LV_ID,		nLevelID
			);
			String strQuery = String.format( "select * from %s %s",
											 DB_LEVEL_TBL_NAME,
											 strWhere );
	    	csCur = readDB(strQuery);			
		}catch(Exception e){
			// 例外時は何もしない
			return false;
		}
		
		m_nLevelNum = csCur.getCount();
		m_nLevel = new int[m_nLevelNum];
		m_nLevelPower = new int[m_nLevelNum];
		m_nLevelGrowMaterial = new int[m_nLevelNum];
		m_nLevelPrice = new int[m_nLevelNum];
    	
    	// ガーベジコレクション
    	java.lang.System.gc();

    	// カーソルを使ってメンバ変数にデータをセット
        csCur.moveToFirst();
        for(int nIndex=0; nIndex<m_nLevelNum; nIndex++){
        	m_nLevel[nIndex] = csCur.getInt(2);
        	m_nLevelPower[nIndex] = csCur.getInt(3);
        	m_nLevelGrowMaterial[nIndex] = csCur.getInt(4);
        	m_nLevelPrice[nIndex] = csCur.getInt(5);
        	csCur.moveToNext();
        }
        csCur.close();
        
        return true;
    }

	/*****************************************
	 *  データ数を取得
	 ****************************************/
    public int GetArmorDataNum(){
    	return m_nArmorNum;
    }
    
	/*****************************************
	 *  データ数を取得（レベル数）
	 ****************************************/
    public int GetLevelNum()
    {
    	return m_nLevelNum;
    }
	
	/*****************************************
	 *  部位を取得
	 ****************************************/
	public int GetArmorPartNum(int nIndex)
	{
        return m_nArmorPart[nIndex];
    }
	
	/*****************************************
	 *  部位を取得
	 ****************************************/
	public String GetArmorPart(int nIndex)
	{
        return ARMOR_PARTS[m_nArmorPart[nIndex]-1];
    }
	
	/*****************************************
	 *  レア度を取得
	 ****************************************/
	public int GetArmorRare(int nIndex)
	{
        return m_nArmorRare[nIndex];
    }
	
	/*****************************************
	 *  スロット数を取得
	 ****************************************/
	public int GetArmorSlot(int nIndex)
	{
		return m_nArmorSlot[nIndex];
	}
	
	/*****************************************
	 *  レベルＩＤを取得
	 ****************************************/
	public int GetArmorLvID(int nIndex)
	{
		return m_nArmorLvID[nIndex];
	}
	
	/*****************************************
	 *  防具名を取得
	 ****************************************/
	public String GetArmorNameStr(int nIndex)
	{
        return m_strArmorName[nIndex];
    }
	
	/*****************************************
	 *  防御力を取得
	 ****************************************/
	public int GetArmorPowerNum(int nIndex)
	{
        return m_nArmorPower[nIndex];
    }
		
	/*****************************************
	 *  耐性を取得
	 ****************************************/
	public int GetArmorResistNum(int nIndex, int nAtt)
	{
        return m_nArmorResist[nIndex][nAtt];
    }
	
	/*****************************************
	 *  スキルを取得
	 ****************************************/
	public String GetArmorSkillStr(int nIndex, int nAtt)
	{
        return m_strArmorSkill[nIndex][nAtt];
    }
		
	/*****************************************
	 *  素材を取得
	 ****************************************/
	public String GetArmorMaterialStr(int nIndex, int nAtt)
	{
        return m_strArmorMaterial[nIndex][nAtt];
    }
		
	/*****************************************
	 *  値段を取得
	 ****************************************/
	public int GetArmorPriceNum(int nIndex)
	{
        return m_nArmorPrice[nIndex];
    }
	
	/*****************************************
	 *  レベルの防御力を取得
	 ****************************************/
	public int GetLevelPower(int nIndex)
	{
		return m_nLevelPower[nIndex];
	}
	
	/*****************************************
	 * 武具玉のレベルを取得
	 ****************************************/
	public int GetLevelGrowMaterial(int nIndex)
	{
		return m_nLevelGrowMaterial[nIndex];
	}
	
	/*****************************************
	 * 武具玉のレベル値段を取得
	 ****************************************/
	public int GetLevelGrowMaterialPrice(int nIndex)
	{
		return m_nLevelPrice[nIndex];
	}
	
    //データベースオブジェクトを取得する（データベースにアクセスするとDBがない場合は作成される。）  
	public void InitDB(){
		InitDBBase();//DB_Base
		StartDB();
	}
	
	// @Override onCreate
	@Override
	public void onCreate(SQLiteDatabase db)
	{
		InitAllTbl(db);
    }

	// @Override onUpgrade
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
	{
		//if(oldVersion <= DB_VER){
			DropAllTbl(db, oldVersion);
			InitAllTbl(db);
		//}
			
		////////////////////////////
		// 全バージョン共通処理
		
		// イメージ情報更新
		//for(int nIndex=0; nIndex<m_stnImageIds.length; nIndex++){
		//	UpdateMonsterImage(db, nIndex, m_stnImageIds[nIndex]);
		//}
		
		m_bUpdateFlag = true;
	}
	
	// ＤＢをすべて破棄します
	public void DropAllTbl(SQLiteDatabase db, int oldVersion)
	{
        String sql = "";  
        // ｸｴｽﾄテーブル削除
        try {
	        sql += "drop table " + DB_ARMOR_TBL_NAME;
	        db.execSQL(sql);
    	}catch(SQLException e){
    	}
        // ｸｴｽﾄ素材テーブル削除
        try {
        	sql = "";  
	        sql += "drop table " + DB_LEVEL_TBL_NAME;
	        db.execSQL(sql);
    	}catch(SQLException e){
    	}
	}
	
	// ＤＢをすべて作成します
	public void InitAllTbl(SQLiteDatabase db)
	{
		// DBクリエイト
		CreateTBLofArmor(db);
		CreateTBLofLevel(db);
	}
	
	/*****************************************
	 *  防具情報テーブルを作成
	 ****************************************/
	public void CreateTBLofArmor(SQLiteDatabase db)
	{
        String sql = String.format(
        		"create table %s (" +
        		" %s integer primary key, %s integer, %s integer, " + 
        		" %s integer, %s integer, %s integer, %s text, %s integer, " + 
        		" %s integer, %s integer, %s integer, %s integer, %s integer, " + 
        		" %s text, %s text, %s text, %s text, %s text, " + 
        		" %s text, %s text, %s text, %s text, %s text, " + 
        		" %s integer " + 
        		")",
        		DB_ARMOR_TBL_NAME,
        		DB_COL_ARMOR_ID,   			DB_COL_ARMOR_KIND, 			DB_COL_ARMOR_PART,
        		DB_COL_ARMOR_RARE, 			DB_COL_ARMOR_SLOT,			DB_COL_ARMOR_LV_ID,			DB_COL_ARMOR_NAME,			DB_COL_ARMOR_POWER,
        		DB_COL_ARMOR_RESIST_FIRE, 	DB_COL_ARMOR_RESIST_WATER, 	DB_COL_ARMOR_RESIST_THUNDER,DB_COL_ARMOR_RESIST_ICE, 		DB_COL_ARMOR_RESIST_DRAGON, 
        		DB_COL_ARMOR_SKILL_1,		DB_COL_ARMOR_SKILL_2,		DB_COL_ARMOR_SKILL_3,		DB_COL_ARMOR_SKILL_4,			DB_COL_ARMOR_SKILL_5,		
        		DB_COL_ARMOR_MATERIAL_0,	DB_COL_ARMOR_MATERIAL_1,	DB_COL_ARMOR_MATERIAL_2,	DB_COL_ARMOR_MATERIAL_3,		DB_COL_ARMOR_MATERIAL_4,
        		DB_COL_ARMOR_PRICE
        );
        db.execSQL(sql);

        // 防具データ挿入
        InsertArmorCommonInfo(db);
        InsertArmorFencerInfo(db);
        InsertArmorGunnerInfo(db);
	}
	
	/*****************************************
	 *  レベル情報テーブルを作成
	 ****************************************/
	public void CreateTBLofLevel(SQLiteDatabase db)
	{
        String sql = String.format(
        		"create table %s (" +
        		" %s integer primary key, %s integer, %s integer, " + 
        		" %s integer, %s integer, %s integer " +
        		")",
        		DB_LEVEL_TBL_NAME,
        		DB_COL_LEVEL_ID,   			DB_COL_LEVEL_LV_ID, 		DB_COL_LEVEL_LEVEL,
        		DB_COL_LEVEL_POWER,   		DB_COL_LEVEL_GROW_MATERIAL, DB_COL_LEVEL_PRICE
        );
        db.execSQL(sql);

        // 防具データ挿入
        InsertLevelInfo(db);
	}
	
	/*****************************************
	 *  防具データ（共用）を挿入
	 ****************************************/
	public void InsertArmorCommonInfo(SQLiteDatabase db)
	{
		InsertArmorDataInfo(db, 0, ARMOR_KIND_COMMON, DB_DefineData_ArmorCommon.m_stStrArmorCommonInfo);
	}

	/*****************************************
	 *  防具データ（剣士）を挿入
	 ****************************************/
	public void InsertArmorFencerInfo(SQLiteDatabase db)
	{
		int nStartNo = DB_DefineData_ArmorCommon.m_stnArmorCommonLvInfo.length;
		InsertArmorDataInfo(db, nStartNo, ARMOR_KIND_FENCER, DB_DefineData_ArmorFencer1.m_stStrArmorFencerInfo);
		nStartNo += DB_DefineData_ArmorFencer1.m_stStrArmorFencerInfo.length;
		InsertArmorDataInfo(db, nStartNo, ARMOR_KIND_FENCER, DB_DefineData_ArmorFencer2.m_stStrArmorFencerInfo);
	}

	/*****************************************
	 *  防具データ（ガンナー）を挿入
	 ****************************************/
	public void InsertArmorGunnerInfo(SQLiteDatabase db)
	{
		int nStartNo = DB_DefineData_ArmorCommon.m_stnArmorCommonLvInfo.length
					 + DB_DefineData_ArmorFencer1.m_stStrArmorFencerInfo.length
					 + DB_DefineData_ArmorFencer2.m_stStrArmorFencerInfo.length;
		InsertArmorDataInfo(db, nStartNo, ARMOR_KIND_GUNNER, DB_DefineData_ArmorGunner1.m_stStrArmorGunnerInfo);
		nStartNo += DB_DefineData_ArmorGunner1.m_stStrArmorGunnerInfo.length;
		InsertArmorDataInfo(db, nStartNo, ARMOR_KIND_GUNNER, DB_DefineData_ArmorGunner2.m_stStrArmorGunnerInfo);
	}
	
	/*****************************************
	 *  防具データを挿入
	 ****************************************/
	public void InsertArmorDataInfo(SQLiteDatabase db, int nStartNo, int nKind, String[][] strData)
	{
		String sql = "";
        int nNo = 0;
        for(int nIndex=0; nIndex<strData.length; nIndex++){
        	nNo = nIndex+1 + nStartNo;
        	sql = "";
        	sql += "insert into " + DB_ARMOR_TBL_NAME + " ";
        	sql += "values ( ";
        	sql += "" + nNo + ", ";
        	sql += "" + nKind + ", ";
        	sql += "" + strData[nIndex][1] + ", ";
        	sql += "" + strData[nIndex][0] + ", ";
        	sql += "" + strData[nIndex][2] + ", ";
        	sql += "" + strData[nIndex][3] + ", ";
        	sql += "\'" + strData[nIndex][4] + "\', ";
        	sql += "" + strData[nIndex][5] + ", ";
        	// 属性
        	sql += "" + strData[nIndex][6] + ", ";
        	sql += "" + strData[nIndex][7] + ", ";
        	sql += "" + strData[nIndex][8] + ", ";
        	sql += "" + strData[nIndex][9] + ", ";
        	sql += "" + strData[nIndex][10] + ", ";
        	// スキル
        	sql += "\'" + strData[nIndex][11] + "\', ";
        	sql += "\'" + strData[nIndex][12] + "\', ";
        	sql += "\'" + strData[nIndex][13] + "\', ";
        	sql += "\'" + strData[nIndex][14] + "\', ";
        	sql += "\'" + strData[nIndex][15] + "\', ";
        	// 素材
        	sql += "\'" + strData[nIndex][16] + "\', ";
        	sql += "\'" + strData[nIndex][17] + "\', ";
        	sql += "\'" + strData[nIndex][18] + "\', ";
        	sql += "\'" + strData[nIndex][19] + "\', ";
        	sql += "\'" + strData[nIndex][20] + "\', ";
        	// 値段
        	sql += "" + strData[nIndex][21] + " ";        	
        	sql += ")";
            db.execSQL(sql);
        }				
	}

	/*****************************************
	 *  防具データ（レベル別防御力）を挿入
	 ****************************************/
	public void InsertLevelInfo(SQLiteDatabase db)
	{
		String sql = "";
        int nNo = 0;
        for(int nIndex=0; nIndex<DB_DefineData_ArmorCommon.m_stnArmorCommonLvInfo.length; nIndex++){
        	nNo = nIndex+1;
        	sql = "";
        	sql += "insert into " + DB_LEVEL_TBL_NAME + " ";
        	sql += "values ( ";
        	sql += "" + nNo + ", ";
        	sql += "" + DB_DefineData_ArmorCommon.m_stnArmorCommonLvInfo[nIndex][0] + ", ";
        	sql += "" + DB_DefineData_ArmorCommon.m_stnArmorCommonLvInfo[nIndex][1] + ", ";
        	sql += "" + DB_DefineData_ArmorCommon.m_stnArmorCommonLvInfo[nIndex][2] + ", ";
        	sql += "" + DB_DefineData_ArmorCommon.m_stnArmorCommonLvInfo[nIndex][3] + ", ";
        	sql += "" + DB_DefineData_ArmorCommon.m_stnArmorCommonLvInfo[nIndex][4] + " ";
        	sql += ")";
            db.execSQL(sql);
        }		
	}

	//////////////////////////////////////////////////////////////////////////
	//////////////////////////////////////////////////////////////////////////
	// ＤＢ上に入れるデフォルトの値

	// スキル一覧
	public String[] m_stStrSkill =
	{
			// パラメータ上昇	1-8
			"体力",	"攻撃",	"防御",
			"火耐性","水耐性","雷耐性","氷耐性","龍耐性",
			// 特殊攻撃耐性	9-20
			"毒","麻痺",	"睡眠","気絶",
			"耐泥耐雪","耐震","風圧","抗菌",
			"盗み無効","聴覚保護","対防御DOWN","属性耐性",
			// 戦闘（剣士）	21-29
			"匠","剣術","斬れ味","抜刀会心","抜刀減気",
			"ガード性能","ガード強化","研ぎ師","自動防御",
			// 戦闘（ガンナー）	30-45
			"速射","装填速度","反動","精密射撃",
			"通常弾強化","貫通弾強化","散弾強化",
			"榴弾追加","拡散弾追加","斬裂弾追加",
			"麻痺瓶追加","睡眠瓶追加","毒瓶追加",
			"強撃瓶追加","接撃瓶追加","減気瓶追加",
			// 戦闘（共用）	46-73
			"スタミナ","回避性能","回避距離",
			"納刀","達人","特殊攻撃","痛撃","重撃",
			"装填数","溜め短縮","本気","KO","減気攻撃",
			"底力","逆境","爆弾強化","笛","砲術",
			"火属性攻撃","水属性攻撃","雷属性攻撃","氷属性攻撃","龍属性攻撃",
			"属性攻撃","加護","体術","気配","こやし",
			// クエスト関連	74-81
			"運気","千里眼","観察眼","捕獲","狩人",
			"運搬","耐暑","耐寒",
			// 回復・アイテム	82-92
			"回復量","回復速度","気力回復",
			"広域","効果持続","高速設置","食事","腹減り",
			"食いしん坊","調合成功率","調合数",
			// 採取			93-96
			"採取","高速収集","気まぐれ","剥ぎ取り",
			// その他
			"胴系複製"
	};
	
	// 武具玉
	public String[] m_stStrGrowMaterial = {
			"武具玉",
			"上武具玉",
			"堅武具玉",
			"重武具玉"
	};
	
	
}
